/**
 * Copyright 2006 Brad Reynolds
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.leeloo.databinding.ui.descriptor;

import org.eclipse.jface.databinding.BindingEvent;
import org.leeloo.internal.core.ObjectDescriptor;

/**
 * Describes the a {@link BindingEvent}.
 * 
 * @author Brad Reynolds
 */
public class BindingEventDescriptor extends ObjectDescriptor {
    private ObservableDescriptor targetObservable;

    private ObservableDescriptor modelObservable;

    private DiffDescriptor diff;

    private int copyType;

    private int pipelinePosition;

    /**
     * @param copyType
     *            the copyType to set
     */
    public void setCopyType(int copyType) {
        this.copyType = copyType;
    }

    /**
     * @param diff
     *            the diff to set
     */
    public void setDiffDescriptor(DiffDescriptor diff) {
        this.diff = diff;
    }

    /**
     * @param observableDescriptor
     *            the model to set
     */
    public void setModelObservableDescriptor(ObservableDescriptor observableDescriptor) {
        this.modelObservable = observableDescriptor;
    }

    /**
     * @param pipelinePosition
     *            the pipelinePosition to set
     */
    public void setPipelinePosition(int pipelinePosition) {
        this.pipelinePosition = pipelinePosition;
    }

    public void setTargetObservableDescriptor(ObservableDescriptor observableDescriptor) {
        this.targetObservable = observableDescriptor;
    }

    public BindingEventDescriptor() {
    }

    public ObservableDescriptor getTargetObservableDescriptor() {
        return targetObservable;
    }

    public ObservableDescriptor getModelObservableDescriptor() {
        return modelObservable;
    }

    public DiffDescriptor getDiffDescriptor() {
        return diff;
    }

    public int getCopyType() {
        return copyType;
    }

    public int getPipelinePosition() {
        return pipelinePosition;
    }
}
